
package controllers;

import dao.DaoPessoa;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import dao.DaoProfessor;
import javax.faces.bean.ViewScoped;
import model.Professor;


@ManagedBean
@ViewScoped
public class ControllerProfessores {
    
    private String status = "Novo";
    private String id="";
    private String nome="";
    private String login="";
    private String senha="";
    private boolean desabilita = false;
    private DaoProfessor daoprofessor = new DaoProfessor();
    private DaoPessoa daoPessoa = new DaoPessoa();
    List<Professor> professores = daoprofessor.listarTodos();

    public List<Professor> getProfessores() {
        return professores;
    }

    public boolean isDesabilita() {
        return desabilita;
    }

    public void setDesabilita(boolean desabilita) {
        this.desabilita = desabilita;
    }
    
    public void setProfessores(List<Professor> professores) {
        this.professores = professores;
    }
   
    public ControllerProfessores() {
    }

    public List<Professor> getProfessor() {
        return professores;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
    
    public void setProfessor(List<Professor> professores) {
        this.professores = professores;
    }
    
    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    
    public void novo(){
        setStatus("Novo");
        setId("");
        setLogin("");
        setNome("");
        setSenha("");
    }
    
    public void gravar(){
        if (getId().equals("")){
            if (!this.daoPessoa.buscarPorLogin(getLogin())){
                Professor p = new Professor();
                p.setNome(getNome());
                p.setSenha(getSenha());
                p.setUsuario(getLogin());
                this.daoprofessor.inserir(p);
                
                setLogin("");
                setNome("");
                setSenha("");
                setStatus("Novo");
                this.professores = daoprofessor.listarTodos();                        
                
                util.UtilWeb.enviarMessagemInfo("MSG", "Usuário criado com sucesso");                
            }else{
                util.UtilWeb.enviarMessagemErro("MSG", "Usuário já está cadastrado");
            }
        }else{
            Professor p = (Professor) this.daoprofessor.buscarPorId(Long.parseLong(getId()));
            p.setNome(getNome());
            p.setSenha(getSenha());
            daoprofessor.atualizar(p);
            
            setId("");
            setLogin("");
            setNome("");
            setSenha("");
            setStatus("Novo");
            setDesabilita(false);
            this.professores = daoprofessor.listarTodos();                    
            
            util.UtilWeb.enviarMessagemInfo("MSG", "Usuário alerado com sucesso");                            
        }
    }
    
    public void atualizar(int id){
        Professor p = (Professor)daoprofessor.buscarPorId(new Long(id));
        setStatus("Alterar");
        setId(""+p.getId());
        setLogin(p.getUsuario());
        setNome(p.getNome());
        setSenha(p.getSenha());
        setDesabilita(true);
    }
    
    public void excluir(int id){
        Professor p = (Professor) daoprofessor.buscarPorId(new Long(id));
        this.daoprofessor.excluir(p);
        this.professores =daoprofessor.listarTodos();        
        util.UtilWeb.enviarMessagemInfo("msg", "Registro excluído com sucesso!");
    }
    
}
